package com.bright.ghj.overt.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @Author hxj
 * @Date 2023/12/26 15:26
 * @Description 记录数据审核流程状态类型
 */
@Getter
@AllArgsConstructor
public enum DataStatus {
    /**
     * 数据待录入 待处理
     */
    WAIT_FOR_PROCESS(0, "待处理状态", "waitToProcess"),
    /**
     * 已报审待审核
     */
    READY_AUDIT(2, "待审核数据", "waitToAudit"),
    /**
     * 审核完成并通过审核 待发布
     */
    AUDIT_SUCCESS_AND_READY_PUBLISH(20, "待发布数据", "waitToPublish"),
    /**
     * 审核不通过 待重新报审
     */
    AUDIT_FAIL(22, "不通过审核", "waitToProcess"),
    /**
     * 已发布 待上传党廉（已废弃该状态 只保留一个“已发布”）
     */
    @Deprecated
    PUBLISHED_AND_READY_CITY_UPLOAD(24, "已发布数据", "published_not_used"),
    /**
     * 已发布 已上传党廉
     */
    PUBLISHED(50, "已发布数据", "published");

    private final int status;
    private final String statusFlag;
    private final String definitionKey;

    public static DataStatus getByStatus(int status) {
        for (DataStatus value : values()) {
            if (value.status == status) {
                return value;
            }
        }
        return null;
    }

    public static DataStatus getByDefinitionKey(String definitionKey) {
        for (DataStatus value : values()) {
            if (value.definitionKey.equals(definitionKey)) {
                return value;
            }
        }
        return null;
    }

}
